package com.xinsoft.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.xinsoft.entity.dto.SysNoticeDTO;
import com.xinsoft.entity.dto.SysNoticePageParam;
import com.xinsoft.entity.po.SysNotice;
import com.xinsoft.entity.vo.SysNoticeVo;

import javax.validation.constraints.NotNull;
import java.util.List;

/**
* @author xuhb
* @description 针对表【sys_notice(通知表)】的数据库操作Service
* @createDate 2023-04-10 11:34:27
*/
public interface SysNoticeService extends IService<SysNotice> {

    /**
     * 方法描述: [发送一条单据编号设置]
     * 初始作者: hsm
     * 创建时间:  2023/04/20
     * param sysNotice
     * return void
     */
    void send(SysNoticeDTO sysNotice);

    /**
     * 方法描述: [根据actionId发送一条单据编号设置]
     * 初始作者: hsm
     * 创建时间:  2023/04/20
     * param sysNotice
     * return void
     */
    void sendNoticeByActionId(List<String> paramValues, @NotNull Integer actionId);

    /**
     * 方法描述: [删除个人的消息]
     * 初始作者: hsm
     * param [ids]
     * return void
     */
    void del(List<Integer> ids);

    /**
     * 方法描述: [阅读个人的消息]
     * 初始作者: hsm
     * param [ids]
     * return void
     */
    void read(List<Integer> ids);

    /**
     * 方法描述: [个人分页查询]
     * 初始作者: hsm
     * param param
     * return 分页数据
     */
     IPage<SysNoticeVo> findPageListByParam(SysNoticePageParam param) ;

    /**
     * 方法描述: [个人未读数量查询]
     * 初始作者: hsm
     * param param
     * return 分页数据
     */
    int unreadCount() ;
}
